#ifndef __DISPLAY_DEV_H__
#define __DISPLAY_DEV_H__

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <stdlib.h>
#include <unistd.h>
#include <unistd.h>


/*
/*设备参数
/*显示区域地址
/*长，宽    像素字节格式 的字节数
/*长宽相乘的总字节数
*/
typedef struct Display_dev_arg_t{
	int xres; 
	int yres;
	int bpp;
	int size;
	unsigned char * base_addr;  
}Display_dev_arg_t,*pDisplay_dev_arg_t;


/*
/*设备总结构体
/*设备名字 绑定的驱动名字
/*设备操作函数
/*设备参数
/*下一个设备
*/
typedef struct Display_dev{
	char* name;
	char* dir_name;
	pDisplay_dev_arg_t screen_args;
	int (*bind_dir)(char* name);
	int (*init_dev)(void);
	void (*show_pix)(int x,int y,unsigned int color);
	pDisplay_dev_arg_t (*get_args)(void);
	struct Display_dev* next;
}Display_dev,*pDisplay_dev;



static int screen_bind_dir(char* name);
static pDisplay_dev_arg_t screen_get_args(void);
static int screen_init(void);
static void screen_show_pix(int x,int y,unsigned int color);
pDisplay_dev head_dev;
int add_to_list(Display_dev * pcurrent_dev);


#endif
